package com.example.basics.basics_one;
//通过反射创建对象
public class NewInstance {
    /**
     * 方法1：通过类对象调用newInstance()方法，例如：String.class.newInstance()
     * - 方法2：通过类对象的getConstructor()或getDeclaredConstructor()方法获得构造器（Constructor）对象并调用其newInstance()方法创建对象，
     *          例如：String.class.getConstructor(String.class).newInstance(“Hello”);
     */

    public static void main(String[] args){
        //详情
        //https://blog.csdn.net/qq_41135254/article/details/97750382?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163331299616780357234905%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163331299616780357234905&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-97750382.pc_search_result_hbase_insert&utm_term=java%E4%B8%AD+%3C%3C+%3E%3E+%E5%8F%AB&spm=1018.2226.3001.4187
        /***
         * 要想运算<<、>>、<<<、>>>这些符号
         * 首先必须了解：
         *                        ①十进制数和二进制数相互转换。
         *                        ②原码、反码和补码。
         *
         */
         int a ;
         int b ;
        a =  2 << 3 ;//左移3位相当于乘以2的3次方， "<<"表示左移，不分正负数，低位补0
        System.out.println(a+" 你好");
        a = 16 >> 3;//右移3位相当于除以2的3次方    ’>>'表示右移，如果该数为正，则高位补0，若为负数，则高位补1；
        System.out.println(a );

        a = 16 >>> 2;
        b = -16 >>> 2;
//        '>>>'表示无符号右移，也叫逻辑右移，即若该数为正，则高位补0，而若该数为负数，则右移后高位同样补0
        System.out.println(a );
        System.out.println(b );
    }
}
